home *** CD-ROM | disk | FTP | other *** search
/ Gold Medal Software 2 / Gold Medal Software Volume 2 (Gold Medal) (1994).iso / windows / win31 / macsyma.arj / MACSDEMO.EXE / STOPEX.OUT < prev    next >
Text File  |  1993-09-13  |  7KB  |  97 lines

  1.  
  2. (c1) /* -*- Mode: Macsyma -*- */
  3. /* 
  4.               DEMONSTRATION OF PACKAGE STOPEX
  5. */
  6. if get('stopex,'version)=false then load('stopex)$
  7. C:\MACSD2B\share\STOPEX.fas being loaded.
  8. C:\MACSD2B\share\genut.fas being loaded.
  9.  
  10. (c2) /* The function EXPANDWRT expands its first argument with respect to
  11.      its other arguments.  All products of these other arguments appear
  12.      explicitly in the result.  First we create an expression to work on:
  13. */
  14. exp1:(a*b+c+d)*(a+b);
  15. |$label(0,15,Times New Roman,$(d2$))$open($()b$hinge()$in( + )a$close($))$hinge()$in( )$open($()d$hinge()$in( + )c$hinge()$in( + )a$in( )b$close($))
  16.  
  17. (c3) expandwrt(exp1,a,b);
  18. |$label(0,15,Times New Roman,$(d3$))b$in( )$paren(d$in( + )c,$(,$))$hinge()$in( + )a$in( )$paren(d$in( + )c,$(,$))$hinge()$in( + )a$in( )$sup(b,2)$hinge()$in( + )$sup(a,2)$in( )b
  19.  
  20. (c4) /* Positive integer powers of similar factors are also expanded. */
  21. exp2:(a*b+c+d)^2*(a+b);
  22. |$label(0,15,Times New Roman,$(d4$))$open($()b$hinge()$in( + )a$close($))$hinge()$in( )$sup($paren(d$in( + )c$in( + )a$in( )b,$(,$)),2)
  23.  
  24. (c5) expandwrt(exp2,a,b);
  25. C:\MACSD2B\library1\binoml.fas being loaded.
  26. |$label(0,15,Times New Roman,$(d5$))b$in( )$sup($paren(d$in( + )c,$(,$)),2)$hinge()$in( + )a$in( )$sup($paren(d$in( + )c,$(,$)),2)$hinge()$in( + )2$in( )a$in( )$sup(b,2)$in( )$paren(d$in( + )c,$(,$))$hinge()$in( + )2$in( )$sup(a,2)$in( )b$in( )$paren(d$in( + )c,$(,$))$hinge()$in( + )$sup(a,2)$in( )$sup(b,3)$hinge()$in( + )$sup(a,3)$in( )$sup(b,2)
  27.  
  28. (c6) /* By default, EXPANDWRT expands the arguments of operators,
  29.       in analogy to EXPAND. */
  30. expandwrt((a+sin((log(a)+b)*(a+b)))*(a+b),a);
  31. |$label(0,15,Times New Roman,$(d6$))b$in( )sin$paren($sup(b,2)$in( + )log$paren(a)$in( )b$in( + )a$in( )b$in( + )a$in( )log$paren(a))$hinge()$in( + )a$in( )sin$paren($sup(b,2)$in( + )log$paren(a)$in( )b$in( + )a$in( )b$in( + )a$in( )log$paren(a))$hinge()$in( + )a$in( )b$hinge()$in( + )$sup(a,2)
  32.  
  33. (c7) /* But by setting EXPANDWRT_NONRAT:FALSE, the expansion of 
  34.       such arguments is inhibited. */
  35. expandwrt_nonrat:false$
  36.  
  37. (c8) expandwrt((a+sin((log(a)+b)*(a+b)))*(a+b),a);
  38. |$label(0,15,Times New Roman,$(d8$))b$in( )sin$paren($paren(b$in( + )a,$(,$))$in( )$paren(b$in( + )log$paren(a),$(,$)))$hinge()$in( + )a$in( )sin$paren($paren(b$in( + )a,$(,$))$in( )$paren(b$in( + )log$paren(a),$(,$)))$hinge()$in( + )a$in( )b$hinge()$in( + )$sup(a,2)
  39.  
  40. (c9) /* By default, denominators are not processed at all. */
  41. exp3:(a*b+c+d)*(a+b)/(c+a)^2;
  42. |$label(0,15,Times New Roman,$(d9$))$q($paren(b$in( + )a,$(,$))$in( )$paren(d$in( + )c$in( + )a$in( )b,$(,$)),$sup($paren(c$in( + )a,$(,$)),2))
  43.  
  44. (c10) expandwrt(exp3,a,b);
  45. |$label(0,15,Times New Roman,$(d10$))$q(b$in( )$paren(d$in( + )c,$(,$)),$sup($paren(c$in( + )a,$(,$)),2))$hinge()$in( + )$q(a$in( )$paren(d$in( + )c,$(,$)),$sup($paren(c$in( + )a,$(,$)),2))$hinge()$in( + )$q(a$in( )$sup(b,2),$sup($paren(c$in( + )a,$(,$)),2))$hinge()$in( + )$q($sup(a,2)$in( )b,$sup($paren(c$in( + )a,$(,$)),2))
  46.  
  47. (c11) /* But by setting the switch EXPANDWRT_DENOM to TRUE, denominators
  48.       are also processed. */
  49. expandwrt_denom:true$
  50.  
  51. (c12) expandwrt(exp3,a,b);
  52. |$label(0,15,Times New Roman,$(d12$))$q(b$in( )$paren(d$in( + )c,$(,$)),$sup(c,2)$in( + )2$in( )a$in( )c$in( + )$sup(a,2))$hinge()$in( + )$q(a$in( )$paren(d$in( + )c,$(,$)),$sup(c,2)$in( + )2$in( )a$in( )c$in( + )$sup(a,2))$hinge()$in( + )$q(a$in( )$sup(b,2),$sup(c,2)$in( + )2$in( )a$in( )c$in( + )$sup(a,2))$hinge()$in( + )$q($sup(a,2)$in( )b,$sup(c,2)$in( + )2$in( )a$in( )c$in( + )$sup(a,2))
  53.  
  54. (c13) expandwrt_denom:false$
  55.  
  56. (c14) /* Expansion with respect to operator names can be specified. */
  57. exp4:(a.b+c)*(a+c.d+e.f+g);
  58. |$label(0,15,Times New Roman,$(d14$))$open($()c$hinge()$in( + )a$in( . )b$close($))$hinge()$in( )$open($()g$hinge()$in( + )e$in( . )f$hinge()$in( + )c$in( . )d$hinge()$in( + )a$close($))
  59.  
  60. (c15) expandwrt(exp4,".");
  61. |$label(0,15,Times New Roman,$(d15$))c$in( )$paren(g$in( + )a,$(,$))$hinge()$in( + )$paren(a$in( . )b,$(,$))$in( )$paren(g$in( + )a,$(,$))$hinge()$in( + )c$in( )$paren(e$in( . )f,$(,$))$hinge()$in( + )$paren(a$in( . )b,$(,$))$in( )$paren(e$in( . )f,$(,$))$hinge()$in( + )c$in( )$paren(c$in( . )d,$(,$))$hinge()$in( + )$paren(a$in( . )b,$(,$))$in( )$paren(c$in( . )d,$(,$))
  62.  
  63. (c16) /* Notice that the expansion returned is not necessarily "minimal" with
  64.       respect to the variables specified in the argument list. That is,
  65.       there may be more than one term in the result proportional to the
  66.       same product of powers of the variables specified in the argument
  67.       list. */
  68. exp5:(gamma(x)*a+b)*(gamma(x)*c+d+2*e^2);
  69. |$label(0,15,Times New Roman,$(d16$))$open($()a$in( )$greektext(G)$paren(x)$hinge()$in( + )b$close($))$hinge()$in( )$open($()c$in( )$greektext(G)$paren(x)$hinge()$in( + )2$in( )$sup(e,2)$hinge()$in( + )d$close($))
  70.  
  71. (c17) expandwrt(exp5,gamma(x));
  72. |$label(0,15,Times New Roman,$(d17$))a$in( )c$in( )$sup($greektext(G),2)$paren(x)$hinge()$in( + )a$in( )$paren(2$in( )$sup(e,2)$in( + )d,$(,$))$in( )$greektext(G)$paren(x)$hinge()$in( + )b$in( )c$in( )$greektext(G)$paren(x)$hinge()$in( + )b$in( )$paren(2$in( )$sup(e,2)$in( + )d,$(,$))
  73.  
  74. (c18) /*  The function EXPANDWRT_FACTORED works on factored or partially
  75.       factored expressions.  The expansion occurs only among those factors
  76.       that contain occurrences of the variables in the argument list of
  77.       EXPANDWRT_FACTORED. Note the difference. */
  78. exp6:%pi*exp1;
  79. |$label(0,15,Times New Roman,$(d18$))$greektext(p)$hinge()$in( )$open($()b$hinge()$in( + )a$close($))$hinge()$in( )$open($()d$hinge()$in( + )c$hinge()$in( + )a$in( )b$close($))
  80.  
  81. (c19) expandwrt(exp6,a,b);
  82. |$label(0,15,Times New Roman,$(d19$))$greektext(p)$in( )b$in( )$paren(d$in( + )c,$(,$))$hinge()$in( + )$greektext(p)$in( )a$in( )$paren(d$in( + )c,$(,$))$hinge()$in( + )$greektext(p)$in( )a$in( )$sup(b,2)$hinge()$in( + )$greektext(p)$in( )$sup(a,2)$in( )b
  83.  
  84. (c20) expandwrt_factored(exp6,a,b);
  85. |$label(0,15,Times New Roman,$(d20$))$greektext(p)$hinge()$in( )$open($()b$in( )$paren(d$in( + )c,$(,$))$hinge()$in( + )a$in( )$paren(d$in( + )c,$(,$))$hinge()$in( + )a$in( )$sup(b,2)$hinge()$in( + )$sup(a,2)$in( )b$close($))
  86.  
  87. (c21) /* Another example: */
  88. exp7:exp6/a;
  89. |$label(0,15,Times New Roman,$(d21$))$q($greektext(p)$in( )$paren(b$in( + )a,$(,$))$in( )$paren(d$in( + )c$in( + )a$in( )b,$(,$)),a)
  90.  
  91. (c22) expandwrt(exp7,a);
  92. |$label(0,15,Times New Roman,$(d22$))$q($greektext(p)$in( )b$in( )$paren(d$in( + )c,$(,$)),a)$hinge()$in( + )$greektext(p)$in( )$paren(d$in( + )c,$(,$))$hinge()$in( + )$greektext(p)$in( )$sup(b,2)$hinge()$in( + )$greektext(p)$in( )a$in( )b
  93.  
  94. (c23) /* Clean Up */
  95. (remvalue(exp1,exp2,exp3,exp4,exp5,exp6,exp7),
  96.  expandwrt_denom:false, expandwrt_nonrat:true)$
  97.